package tp1
import scala.collection.mutable.HashMap

class Foja() {
	var notas:List[Cursada] = Nil
  
	def actualizarFoja(cursada:Cursada){
	  this.notas = this.notas :+ cursada
	}
	
//	def cursadasAprobadas():Int ={
//	 var lista = this.notas.filter(this.esAprobada(_))
//     lista.foldLeft(0)((acum, elem) => {acum + 1})
//	}
//	
//	def cursosAbandonados():Int ={
//		var lista = this.cursadasQueAbandono()
//		lista.foldLeft(0)((acum, elem) => {acum + 1})
//	}
//	
//	def cursosAprobadoSobreIniciados():Double = {
//	  (this.cursadasAprobadas()*100) / this.notas.length
//	}
//	
//	def promedioConAplazos():Double = {
//	  var lista = this.cursadasTerminadas
//	  var sumaDeNotas = lista.foldLeft(0)((acum, elem) => {acum + elem.calificacion})
//	  sumaDeNotas / lista.length
//	}
//	
//	def promedioSinAplazos():Double = {
//	  var lista = this.notas.filter(this.esAprobada(_))
//	  var sumaDeNotas = lista.foldLeft(0)((acum, elem) => {acum + elem.calificacion})  
//	  sumaDeNotas / lista.length
//	}
//	
//	def tablaDeNotas():HashMap[Int,Int] = {
//	  var tabla = new HashMap[Int,Int]
//	  1.to(10).foreach(agregarIndice(_,tabla))
//	  tabla
//	}
//	
//	def agregarIndice(indice:Int, tabla:HashMap[Int,Int]){
//	  tabla.put(indice, cantidadDe(indice))
//	}
//	
//	def cantidadDe(numero:Int):Int={
//	  val listaDelNumero= this.notas.filter(_.calificacion == numero)
//	  listaDelNumero.foldLeft(0){(acum, elem) => acum + 1}
//	}
//	
//	def notaMasAltaAlmenosXVeces(cantidad:Int):Int = {
//	  val tabla = this.tablaDeNotas()
//	  var notasContadas = tabla(10)
//	  var notaActual=9
//	  while(notasContadas < cantidad && notaActual > 0){
//	    notasContadas += tabla(notaActual)
//	    notaActual -=1
//	  }
//	  if(notasContadas >= cantidad){
//	    notaActual
//	  }
//	  notaActual
//	  }
//	  
//	def esAprobada(cursada:Cursada):Boolean= cursada match{
//	  case ap:Aprobada => true
//	  case _ => false 
//	}
//	  
//	def esAbandonada(cursada:Cursada):Boolean= cursada match{
//	  case a:Abandonada => true
//	  case _ => false 
//	}
//	   
//	def fueTerminada(cursada:Cursada):Boolean = cursada match{
//	  case a:Aprobada => true
//	  case d:Desaprobada => true
//	  case _ => false
//	}  
//	  
//	def cursadasTerminadas():List[Cursada] = {
//	  this.notas.filter(this.fueTerminada(_))
//	} 
//	   
//    def cursadasQueAbandono():List[Cursada] ={
//	  this.notas.filter(this.esAbandonada(_))
//	} 
	
}

